<?php 
// file: uploadfile.php
// author: http://blog.unijimpe.net
// date: 27/02/2010
class UploadExtranjera extends DBManager {
	var $maxsize = 0;
	var $message = "";
	var $newfile = "";
	var $newpath = "";
	
	var $filesize = 0;
	var $filetype = "";
	var $filename = "";
	var $filetemp;
	var $fileexte;
	
	var $allowed = array("image/bmp","image/gif","image/jpeg","image/pjpeg","image/png","image/x-png","pdf");
	var $blocked = array("php","phtml","php3","php4","js","shtml","pl","py","exe","EXE");
	var $isimage;
	
	var $isupload;
        var  $con;
        
	//funcion para comprobar conexion
        function open_con()
	{
            $this->con=parent::conectar();
            return $this->con;
	}

	//funcion para cerra conexion
	function close_con()
	{
            parent::desconectar();
	}
        
        function new_archivo_autorizado_extranjera($datos)
        {
            parent::conectar();
            $record["idautorizado_extranjera"]       =   $datos[0];
            $record["idempleado"]         =   $datos[1];
            $record["idobjetivoarchivo"]  =   $datos[2];
            $record["nombrearc_fexta"]    =   $datos[3];
            $record["file_fexta"]         =   $datos[4];
            $record["formato_fexta"]      =   $datos[5];
            $record["observacion_fexta"]  =   $datos[6];
            
            
	    $new_archivo_autorizado_extranjera       =   $this->obj_con->AutoExecute("tp_archivo_autorizadoext", $record, 'INSERT');

            if($new_archivo_autorizado_extranjera)
            {
            	return true;
            }
            else
            {
		return false;
            }
        }
        
        function load_archivo_autorizado()
        {
            parent::conectar();
            $start           =   isset($_POST['start'])?$_POST['start']:0; 
       	    $limit           =   isset($_POST['limit'])?$_POST['limit']:100;
            $idautorizado    =   $_POST['idautorizado'];
 	    $data_all        =   array();
            
            $consulta_estados = "select faut.idarchivoextranjera,upper(faut.nombrearc_fexta) as nombrearc_fexta,faut.idobjetivoarchivo,objf.nombre_objarc,to_char(faut.fecharegistro_fexta,'DD/MM/YYYY') as fecharegistro_fexta,
                                faut.observacion_fexta,faut.formato_fexta
                                from tp_archivo_autorizadoext faut
                                inner join ts_objetivoarchivo objf on objf.idobjetivoarchivo = faut.idobjetivoarchivo
                                where faut.idautorizado_extranjera='".$idautorizado."'
                                order by faut.fecharegistro_fexta desc";
            $recordset_all      =   $this->obj_con-> Execute($consulta_estados);

            if (!$recordset_all)
            {
                echo ($this->obj_con->ErrorMsg());
            }
            else
            {
                while (!$recordset_all->EOF)
     	        {
                    $idarchivo          =   $recordset_all->fields['idarchivoextranjera'];
                    $nombre_file        =   $recordset_all->fields['nombrearc_fexta'];
                    $idobjetivo         =   $recordset_all->fields['idobjetivoarchivo'];
                    $nombre_objetivo    =   $recordset_all->fields['nombre_objarc'];
                    $f_file             =   $recordset_all->fields['fecharegistro_fexta'];
                    $observacion        =   $recordset_all->fields['observacion_fexta'];
                    $formato            =   $recordset_all->fields['formato_fexta'];
                
                    $responce_all=array('idarchivo'=>$idarchivo,'nombre_archivo'=>$nombre_file,'id_proposito'=>$idobjetivo,'proposito_archivo'=>$nombre_objetivo,'date_archivo'=>$f_file,'observacion'=>$observacion,'imagen_tipo'=>$formato);
                    array_push($data_all,$responce_all);
                    $recordset_all->MoveNext();
                 }

                 $paging_all = array(
                        	 'success'=>true,
                                 'total'=>count($data_all), //<--- total de registros a paginar
				 'data'=> array_splice($data_all,$start,$limit)
                                );

		echo json_encode($paging_all);
             }
        }        
        
        
        function update_archivo_autorizado_extranjera($idarchivo,$datos,$path)
        {
            parent::conectar();
            $record["idobjetivoarchivo"]  =   $datos[2];
            $record["nombrearc_fexta"]    =   $datos[3];
            $record["file_fexta"]         =   $datos[4];
            $record["formato_fexta"]      =   $datos[5];
            $record["observacion_fexta"]  =   $datos[6];
            
            $name_file                       =   $this->get_campo_file_auto('idarchivoextranjera = '.$idarchivo, 'file_fexta');
	    $update_archivo_autorizado       =   $this->obj_con->AutoExecute('tp_archivo_autorizadoext', $record, 'UPDATE','idarchivoextranjera = '.$idarchivo);

            if($update_archivo_autorizado)
            {
                unlink($path.$datos[0]."/".$name_file);
            	return true;
            }
            else
            {
		return false;
            }
        }        
        
        
        function delete_file($datos,$path)
        {
            parent::conectar();
            
            $name_file       = $this->get_campo_file_auto("idarchivoextranjera = ".$datos[0], "file_fauto");
            $delete_file     = "delete from tp_archivo_autorizadoext where idarchivoextranjera = ".$datos[0]." and idautorizado_extranjera = ".$datos[1];
            $recordset_all   =  $this->obj_con-> Execute($delete_file);
            
            if($recordset_all)
            {
                unlink($path.$datos[1]."/".$name_file);
                return true;
            }
            else
            {
                return false;
            }
            
            
        }
        
        function get_campo_file_auto($condicion,$get_campo)
	{
            parent::conectar();

            $consulta  =   "select ".$get_campo." from tp_archivo_autorizadoext where ".$condicion;
            $record_consulta = $this->obj_con->GetRow($consulta);
            
            return  $record_consulta[$get_campo];
        }        
	

	function setFile($field) 
        {
		$this->filesize = $_FILES[$field]['size'];
		$this->filename = $_FILES[$field]['name'];
		$this->filetemp = $_FILES[$field]['tmp_name'];
		$this->filetype = mime_content_type($this->filetemp);
		$this->fileexte = substr($this->filename, strrpos($this->filename, '.')+1);
		$this->newfile = substr(md5(uniqid(rand())),0,10).".".$this->fileexte;
	}
	function setPath($value) {
		$this->newpath = $value;
	}
	function setMaxSize($value) {
		$this->maxsize = $value;	
	}
	function isImage($value) {
		$this->isimage = $value;
	}
	function save() {
		if (is_uploaded_file($this->filetemp)) {
			// check if file valid
			if ($this->filename == "") {
				$this->message = "NO EXISTE NINGUN ARCHIVO PARA ADJUNTAR";
				$this->isupload = false;
				return false;
			}
			// check max size
			if ($this->maxsize != 0) {
				if ($this->filesize > $this->maxsize*1024) {
					$this->message = "EL ARCHIVO ES DEMASIADO GRANDE";
					$this->isupload = false;
					return false;
				}
			}
			// check if image
			if ($this->isimage) {
				// check dimensions
				if (!getimagesize($this->filetemp)) {
					$this->message = "ES INVALIDO EL ARCHIVO YA QUE NO ES UNA IMAGEN";
					$this->isupload = false;
					return false;	
				}
				// check content type
				if (!in_array($this->filetype, $this->allowed)) {
					$this->message = "INVALIDO TIPO DE ARCHIVO";
					$this->isupload = false;
					return false;
				}
			}
			// check if file is allowed
			if (in_array($this->fileexte, $this->blocked)) {
				$this->message = "EL ARCHIVO QUE DESEA AGREGAR ES PROHIBIDO SU FORMATO - ".$this->fileexte;
				$this->isupload = false;
				return false;
			}
					
			if (move_uploaded_file($this->filetemp, $this->newpath."/".$this->newfile)) {
				$this->message = "EL ARCHIVO SE ADJUNTO SIN NINGUN PROBLEMA!";
				$this->isupload = true;
				return true;
			} else {
				$this->message = "EL ARCHIVO NO FUE ADJUNTADO, INTENTE MAS TARDE";
				$this->isupload = false;
				return false;
			}
		} else {
			$this->message = "EL ARCHIVO NO FUE ADJUNTADO, INTENTE MAS TARDE";
			$this->isupload = false;
			return false;
		}
	}	
}
?>
